package com.comprehensive.dataservice.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.persistence.Entity;
import jakarta.persistence.Table;

@Entity
@Table(name = "file_info")
@TableName("file_info")
public class FileInfo extends BaseEntity {
    /**
     * 文件名
     */
    private String fileName;
    /**
     * 原始文件名
     */
    private String originalFileName;
    /**
     * 文件存储路径
     */
    private String filePath;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 文件哈希值（MD5/SHA256）
     */
    private String fileHash;

    /**
     * 文件类型（MIME）
     */
    private String contentType;

    /**
     * 存储类型（LOCAL/S3/OSS）
     */
    private String storageType;
    /**
     * 文件访问url
     */
    private String fileUrl;

    /**
     * 业务类型
     */
    private String businessType;

    /**
     * 业务关联ID
     */
    private String businessId;

    /**
     * 备注
     */
    private String remark;
    
    /**
     * 获取文件名
     * @return 文件名
     */
    public String getFileName() {
        return fileName;
    }
    
    /**
     * 设置文件名
     * @param fileName 文件名
     */
    public void setFileName(String fileName) {
        this.fileName = fileName;
    }
    
    /**
     * 获取原始文件名
     * @return 原始文件名
     */
    public String getOriginalFileName() {
        return originalFileName;
    }
    
    /**
     * 设置原始文件名
     * @param originalFileName 原始文件名
     */
    public void setOriginalFileName(String originalFileName) {
        this.originalFileName = originalFileName;
    }
    
    /**
     * 获取文件存储路径
     * @return 文件存储路径
     */
    public String getFilePath() {
        return filePath;
    }
    
    /**
     * 设置文件存储路径
     * @param filePath 文件存储路径
     */
    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }
    
    /**
     * 获取文件大小（字节）
     * @return 文件大小
     */
    public Long getFileSize() {
        return fileSize;
    }
    
    /**
     * 设置文件大小（字节）
     * @param fileSize 文件大小
     */
    public void setFileSize(Long fileSize) {
        this.fileSize = fileSize;
    }
    
    /**
     * 获取文件哈希值
     * @return 文件哈希值
     */
    public String getFileHash() {
        return fileHash;
    }
    
    /**
     * 设置文件哈希值
     * @param fileHash 文件哈希值
     */
    public void setFileHash(String fileHash) {
        this.fileHash = fileHash;
    }
    
    /**
     * 获取文件类型
     * @return 文件类型
     */
    public String getContentType() {
        return contentType;
    }
    
    /**
     * 设置文件类型
     * @param contentType 文件类型
     */
    public void setContentType(String contentType) {
        this.contentType = contentType;
    }
    
    /**
     * 获取存储类型
     * @return 存储类型
     */
    public String getStorageType() {
        return storageType;
    }
    
    /**
     * 设置存储类型
     * @param storageType 存储类型
     */
    public void setStorageType(String storageType) {
        this.storageType = storageType;
    }
    
    /**
     * 获取文件访问URL
     * @return 文件访问URL
     */
    public String getFileUrl() {
        return fileUrl;
    }
    
    /**
     * 设置文件访问URL
     * @param fileUrl 文件访问URL
     */
    public void setFileUrl(String fileUrl) {
        this.fileUrl = fileUrl;
    }
    
    /**
     * 获取业务类型
     * @return 业务类型
     */
    public String getBusinessType() {
        return businessType;
    }
    
    /**
     * 设置业务类型
     * @param businessType 业务类型
     */
    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }
    
    /**
     * 获取业务关联ID
     * @return 业务关联ID
     */
    public String getBusinessId() {
        return businessId;
    }
    
    /**
     * 设置业务关联ID
     * @param businessId 业务关联ID
     */
    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }
    
    /**
     * 获取备注
     * @return 备注
     */
    public String getRemark() {
        return remark;
    }
    
    /**
     * 设置备注
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }
}